/***************************************************
 @Name :        小铭同学
 @Time :        2025-09-03
 @Email :       LiaoMingWJ233@163.com
 @Comment :     智能家居
 @FileName :    widget.cpp
 @Version :     1.0
****************************************************/


#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);        
    
    ui->label_fwq2->setPixmap(QPixmap(":/红灯"));
    ui->label_khd2->setPixmap(QPixmap(":/红灯"));
    
    /************************************TCP************************************/
    // 使用单例模式获取TCP实例
    tcp =  TCP::instance();
    
    // 启动服务器
    TCP::instance()->startServer();
    
    // 检查服务器状态
    if (TCP::instance()->c == 1) {
        ui->label_fwq2->setPixmap(QPixmap(":/黄灯"));
        ui->label_khd2->setPixmap(QPixmap(":/红灯"));
        qDebug() << "服务器正在运行";
    }
    
    // 连接代码 服务器 打开
    connect(tcp, &TCP::statusChanged_fwd_lj, this, [=](){
        qDebug() << tcp->c;
        if(tcp->c == 1) {
            ui->label_fwq2->setPixmap(QPixmap(":/黄灯"));
            ui->label_khd2->setPixmap(QPixmap(":/红灯"));
        }
    });
    
    // 连接代码 服务器 关闭
    connect(tcp, &TCP::statusChanged_fwd_dk, this, [=](){
        if(tcp->d == 1) {
            ui->label_fwq2->setPixmap(QPixmap(":/红灯"));
            ui->label_khd2->setPixmap(QPixmap(":/红灯"));
            Equipment_Status_menu->label_dog_Status(QPixmap(":/机械狗_关"));
        }
    });
    
    // 连接代码 客户端 连接
    connect(tcp, &TCP::statusChanged_khd_lj, this, [=](){
        //qDebug() << tcp->a;  // 在lambda中直接访问tcp->a
        if(tcp->a == 1) {
            ui->label_fwq2->setPixmap(QPixmap(":/绿灯"));
            ui->label_khd2->setPixmap(QPixmap(":/绿灯"));
            Equipment_Status_menu->label_dog_Status(QPixmap(":/机械狗_开"));
        }
    });
    
    // 连接代码 客户端 断开
    connect(tcp, &TCP::statusChanged_khd_dk, this, [=](){
        //qDebug() << tcp->b;
        if(tcp->b == 1) {
            ui->label_fwq2->setPixmap(QPixmap(":/绿灯"));
            ui->label_khd2->setPixmap(QPixmap(":/红灯"));
            Equipment_Status_menu->label_dog_Status(QPixmap(":/机械狗_关"));
        }
    });       
    
    /************************************主页面************************************/
    ui->label_bj->setPixmap(QPixmap(":/主页面_背景"));
    
    ui->exit->raise();
    pushButton_set(ui->exit);    
    // 连接信号和槽
    connect(ui->exit, &QPushButton::clicked, this, &Widget::on_exit_clicked);
    
    ui->label_head->setPixmap(QPixmap(":/头像"));
    
    ui->label_tp1->setPixmap(QPixmap(":/LED"));
    ui->label_tp2->setPixmap(QPixmap(":/家电控制"));
    ui->label_tp3->setPixmap(QPixmap(":/家电状态"));
    ui->label_tp4->setPixmap(QPixmap(":/温湿度"));
    
    pushButton_set(ui->pushButton_led);
    pushButton_set(ui->pushButton_Device_Control);
    pushButton_set(ui->pushButton_Equipment_Status);
    pushButton_set(ui->pushButton_TemHum);
    
    ui->label_fwq1->setText("主控台");
    ui->label_fwq1->setFont(QFont("楷体",15));
    ui->label_fwq1->setStyleSheet("font-weight: bold;color: white;");
    
    //ui->label_fwq2->setPixmap(QPixmap(":/红灯"));
    
    ui->label_khd1->setText("机械狗");
    ui->label_khd1->setFont(QFont("楷体",15));
    ui->label_khd1->setStyleSheet("font-weight: bold;color: white;");
    
    //ui->label_khd2->setPixmap(QPixmap(":/红灯"));           
    
    /************************************页面************************************/
    connect(ui->pushButton_led, &QPushButton::clicked, this, [=]() {
        ui->stackedWidget->setCurrentIndex(0);// 切换页面
    });

    connect(ui->pushButton_Device_Control, &QPushButton::clicked, this, [=]() {        
        ui->stackedWidget->setCurrentIndex(1);// 切换页面
    });
    
    connect(ui->pushButton_Equipment_Status, &QPushButton::clicked, this, [=]() {
        ui->stackedWidget->setCurrentIndex(2);// 切换页面
    });

    connect(ui->pushButton_TemHum, &QPushButton::clicked, this, [=]() {
        ui->stackedWidget->setCurrentIndex(3);// 切换页面
    });
    
    led_menu = new LED(this);
    Device_Control_menu = new Device_Control(this);
    Equipment_Status_menu = new Equipment_Status(this);
    TemHum_menu = new TemHum(this);
    
    ui->stackedWidget->addWidget(led_menu);
    ui->stackedWidget->addWidget(Device_Control_menu);
    ui->stackedWidget->addWidget(Equipment_Status_menu);
    ui->stackedWidget->addWidget(TemHum_menu);
    
    led_menu->setFixedSize(700, 480);
    Device_Control_menu->setFixedSize(700, 480);
    Equipment_Status_menu->setFixedSize(700, 480);
    TemHum_menu->setFixedSize(700, 480);
    
    
}

Widget::~Widget()
{
    delete ui;
}


void Widget::pushButton_set(QPushButton *pushButton)
{
    pushButton->setStyleSheet(R"(
        QPushButton {
            background-color: #71afa0;  /* 按钮背景颜色 - 青绿色 */
            color: white;               /* 文字颜色 - 白色 */
            border-radius: 15px;        /* 边框圆角半径 - 15像素 */
            border: none;               /* 边框样式 - 无边框 */
            padding: 4px 4px;           /* 内边距 - 上下4像素，左右4像素 */
            font-size: 18px;            /* 字体大小 - 20像素 */
            font-weight: bold;          /* 字体粗细 - 粗体 */
            font-family: "楷体";        /* 字体家族 - 楷体 */
        }
        QPushButton:hover {
            background-color: #5d9c8b;  /* 鼠标悬停时的背景颜色 - 深青绿色 */
        }
        QPushButton:pressed {
            background-color: #4a8978;  /* 鼠标按下时的背景颜色 - 更深青绿色 */
        }
    )");
}

void Widget::on_exit_clicked()
{
    tcp->stopServer();  
    
    //exit(0);
    this->close();
    QApplication::quit();
}
